using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace Outpatient.Doman.Smart
{
    /// <summary>
    /// 医生信息实体类
    /// </summary>
    [Table("DoctorInfo")]
    public class DoctorInfo
    {
        /// <summary>
        /// 医生ID - 主键，自增
        /// </summary>
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int DoctorId { get; set; }

        /// <summary>
        /// 工号/编号 - 唯一
        /// </summary>
        [Required]
        [StringLength(50)]
        public string DoctorCode { get; set; } = string.Empty;

        /// <summary>
        /// 姓名
        /// </summary>
        [Required]
        [StringLength(50)]
        public string Name { get; set; } = string.Empty;

        /// <summary>
        /// 性别 - true=男, false=女
        /// </summary>
        public bool Gender { get; set; }

        /// <summary>
        /// 所属科室
        /// </summary>
        [StringLength(10)]
        public string DepartmentId { get; set; } = string.Empty;

        /// <summary>
        /// 职称 - 主任/副主任等
        /// </summary>
        [StringLength(50)]
        public string Title { get; set; } = string.Empty;

        /// <summary>
        /// 专业特长
        /// </summary>
        [StringLength(200)]
        public string Speciality { get; set; } = string.Empty;

        /// <summary>
        /// 是否在职 - true=在职, false=离职
        /// </summary>
        public bool Status { get; set; } = true;

        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreateTime { get; set; } = DateTime.Now;

        /// <summary>
        /// 是否删除 - 软删除
        /// </summary>
        public bool IsDeleted { get; set; } = false;

        // 导航属性
        public virtual ICollection<ConsultationDetail> ConsultationDetails { get; set; } = new List<ConsultationDetail>();
    }
} 